/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pkgjeudestrategie;

import java.util.Random;

/**
 *
 * @author Admin
 */
public class Name {
    
     char y=0;
     char olderY=' ';
     char oldY=' ';
     boolean gotVoyelle=false;
    String name;
    public Name(){
        
        getWord();
    }
    public String getName(){
        return name;
    }
    
    
   public void getWord(){
           String s="";
        gotVoyelle=false;
        boolean isAcceptable=false;
        Random rnd=new Random();
        int lengthWord=rnd.nextInt(6)+3;
        while(lengthWord>=0){
            while(!isAcceptable){
            getAnY();
            if(switchomation(lengthWord)){
                isAcceptable=true;
                olderY=oldY;
                oldY=y;
                 s=s+y;
            }
            }
            isAcceptable=false;
            lengthWord--;
        }
      name=""+s.charAt(0);
      name=name.toUpperCase();
      name=name+s.substring(1);
    }   
    public boolean switchomation(int lengthWord){
        boolean b=true;
        boolean voyelle=false;
        Random rnd=new Random();
        
        if(oldY!=0){
            
        //pas de doublement de voyelle
            if(oldY==97||oldY==101||oldY==105||oldY==111||oldY==117||oldY==121){
                if(y==97||y==101||y==105||y==111||y==117||y==121){
                    b=false;
                }
                gotVoyelle=true;
                voyelle=true;
            }
                   
            
                    
                    //qu
            else if(oldY==113){
                    y=(char) 117;
            }
               // 1 chance sur 8 qu'une lettre soit suivie par une consonne «suiveuse»,
               // 7 chance sur 8 qu'une lettre soit suivie par une voyelle.
            else{
            int r=rnd.nextInt(8);
            if(r>0){
                if(y!=97&&y!=101&&y!=105&&y!=111&&y!=117&&y!=121){
                    b=false;
                }
            }
            else{
                if(y!=114&&y!=104&&y!=115&&y!=110&&y!=109&&y!=112&&y!=116){
                    b=false;
                }
                if(y==oldY){
                 b=false;   
                }
            }
            } 
            //th
            if(oldY==116){
                int r=rnd.nextInt(10);
                if(r==0){
                    y=(char) 104;
                }
            }
                    //ss
            if(oldY==115&&olderY!=115){
                int r=rnd.nextInt(10);
                if(r==0){
                    y=(char) 115;
                }
            }
            //terminaison!!
            if(lengthWord==1){
            int r=rnd.nextInt(4);
                if(!gotVoyelle){
                    y=101;
                }
                else if(r==0&&!voyelle){
                y=101;
            }
            }
            //ii
            
            if(y==115&&oldY==115&&olderY==115){
                b=false;
            }
            
        }
        
        
       return b; 
    }
    public void getAnY(){
     //table des probabilitées d'apparition de lettre (fr)
        Random rnd = new Random();
        double d = (rnd.nextInt(101));
        d = d / 100;

        if (d <= 0.082) {
            y='a';
        } else if (d <= 0.090) {
            y='b';
        } else if (d <= 0.124) {
            y='c';
        } else if (d <= 0.161) {
            y='d';
        } else if (d <= 0.332) {
            y='e';
        } else if (d <= 0.343) {
            y='f';
        } else if (d <= 0.352) {
            y='g';
        } else if (d <= 0.359) {
            y='h';
        } else if (d <= 0.437) {
            y='i';
        } else if (d <= 0.442) {
            y='j';
        } else if (d <= 0.443) {
            y='k';
        } else if (d <= 0.498) {
            y='l';
        } else if (d <= 0.528) {
            y='m';
        } else if (d <= 0.599) {
            y='n';
        } else if (d <= 0.652) {
            y='o';
        } else if (d <= 0.682) {
            y='p';
        } else if (d <= 0.696) {
            y='q';
        } else if (d <= 0.762) {
            y='r';
        } else if (d <= 0.840) {
            y='s';
        } else if (d <= 0.912) {
            y='t';
        } else if (d <= 0.975) {
            y='u';
        } else if (d <= 0.991) {
            y='v';
        } else if (d <= 0.992) {
            y='w';
        } else if (d <= 0.996) {
            y='x';
        } else if (d <= 0.999) {
            y='y';
        } else if (d <= 1) {
            y='z';
        }
    }
}
